import {
	showTishi
} from './index.js'
import {
	API_URL
} from '../common/public_url.js'
import {
	formatLogin
} from './format.js'


function request(url, method, data, refresh) {
	// if(!refresh && method == 'GET'){
	// 	uni.showLoading({
	// 		title: '数据加载中...',
	// 		mask: true
	// 	})
	// }

	let JWTtoken = uni.getStorageSync('JWTtoken')
	console.log(JWTtoken, 'JWTtoken');
	var Authorization = uni.getStorageSync('JWTtoken') ? {
		"Authorization": "Bearer " + uni.getStorageSync('JWTtoken')
	} : {}

	return new Promise((resolve, reject) => {
		uni.request({
			url: API_URL + url,
			method,
			timeout: 10000,
			data,
			header: Authorization,
			credentials: true, // 表明请求应该自动发送 cookies
			withCredentials: true,
			success: function(res) {
				// if(!refresh && method == 'GET'){
				// 	setTimeout(() => {
				// 		uni.hideLoading()
				// 	}, 800)
				// }
				// 
				// console.log("url: "+API_URL + url);
				// console.log("data: "+JSON.stringify(data));
				const code = res.statusCode
				if (code == 200) {
					// resolve(res.data)
					if (res.data.status == 0) {
						resolve(res.data)
					} else if (res.data.status == 10000) {
						uni.showToast({
							title: '状态码10000，未知原因错误！',
							icon: 'none'
						})
					} else if (res.data.status == 10005) {
						if (url != '/v0.1/user/balance/') {
							setTimeout(function() {
								formatLogin()
							}, 1000)
						} else {
							resolve(res.data)
						}
					} else if (res.data.status == 10403||res.data.status == 100005) {
						// 登录过期
						uni.showToast({
							title: "登录过期，请重新登录",
							icon: 'none'
						})
						setTimeout(function() {
							formatLogin()
						}, 1000)
					} else {
						// if(res.data.msg){
						// 	showTishi(res.data.msg)
						// }else if(res.data.detail){
						// 	showTishi(res.data.detail)
						// }else{

						// }
						// let msg = "状态码：" + res.data.status
						// if(res.data.msg){
						// 	msg += "，" + res.data.msg
						// }
						// if(res.data.detail){
						// 	msg += "，" + res.data.detail
						// }
						// uni.showToast({
						// 	title: msg,
						// 	icon: 'none'
						// })
						resolve(res.data)
					}
				} else if (code == 404) {
					console.log(url, '404-url')
					uni.showToast({
						title: '404: 接口暂未开放',
						icon: 'none'
					})
				} else {
					uni.showToast({
						title: "请求错误，请联系管理员",
						icon: 'none'
					})
					// // 跳转到首页
					// setTimeout(function() {
					// 	formatLogin()
					// }, 1000)
				}
			},
			fail: function(error) {
				uni.showToast({
					title: '网络延迟',
					icon: 'none'
				})
				reject(false)
			},
			complete: function(e) {
				// console.log(e, 'complete')
			},
		})
	})
}

function get({
	url,
	data,
	refresh
}) {
	return request(url, 'GET', data, refresh)
}

function post({
	url,
	data
}) {
	return request(url, 'POST', data)
}

function put({
	url,
	data
}) {
	return request(url, 'PUT', data)
}

function del({
	url,
	data
}) {
	return request(url, 'DELETE', data)
}

export default {
	request,
	get,
	post,
	put,
	del,
}